1. Technical Field
Aspects of the present invention relate to software products. More particularly, aspects of the present invention relate to providing users with application content in a local language.
2. Description of Related Art
Computing systems exist in a number of languages. A number of software applications and operating systems are created in a first language then ported over to other languages. This is sometimes referred to as localization of the applications and operating systems. However, a number of software applications are never translated into other languages. These applications remain available only in their source language for a variety of reasons. Sometimes the high cost of localization is not expected to be met by sales of applications in other languages. Other times, the software developer may lack the skills needed to effectively translate or have translated the nuances of an application into other languages. These and other reasons bar users of different languages from using applications that have not been translated into their specific languages.
A conventional process of creating applications in more than one language is shown in FIG. 3A. An application is created in a first language in step 301. Next, a developer may translate the application into a second language in step 302. The conventional process of creating applications in more than one language is through the use of localization tools. Either resource files are localized and the product is re-compiled, or tools that do not require the re-compiling of the application are used.
Some techniques exist to allow applications to be more easily translated for users of other languages. First, some systems provide links to automated machine translation dictionaries that are accessed in real-time to translate text to be displayed to a user into that user's local language. Here, the automated machine translation dictionaries have no knowledge of terms as used in an application. The selected translation typically has nothing in common with previously translated words. A difficulty with this approach is that mere mechanical dictionary translations are of generally poor quality. File in a source language (relating to the act of accessing a location for a document) may be translated as a metal sharpening device using mere dictionary translations.
Second, as shown in FIG. 3B, an application 304 may include with it an application translation resources 305. The core of application 304 may be written in a first language. However, when text is to be output to a display or printer or other device or medium, the application 304 accesses the application translation text in application translation resources 305. The application 304 obtains corresponding entries in text of translation resources 305 relating to expected text messages and their translated equivalents. The translated equivalents are forwarded to graphic device interface (GDI) 308, rendered, and output to a display 309.
Three issues exist with the system of FIG. 3B. First, unless the application translation resources 305 are provided, no robust translation of the application 304 will exist. Second, some of the information provided by application 304 may be generated from the operating system, not application 304 directly. If the operating system supporting application 304 is localized to a first language and application 304 is localized to a second language, the user may be forced to receiving messages in both the first and second languages. Third, if an application exists already without translation resources 305, then potential users may not have the ability to use application 304 in their language until translation table 305 is created and integrated into application 304.